1
超越顺利路径:处理异常
AI035Lesson 5
00:00

在 Ruby 中,跨越 顺利路径 意味着从线性逻辑转向防御性编程模式,其中失败被视为 一等对象 而不是导致程序终止的灾难性错误。

1. 异常层次结构

Ruby 预定义了一个清晰的异常层次结构,如 图 8.1所示。每个错误都是该树中某个类的实例,起点是 Exception 根类。理解这一结构至关重要:应用级错误通常继承自 StandardError,而系统级失败(如 NoMemoryError)则直接继承自 Exception

ExceptionSignalExceptionScriptErrorNoMemoryErrorStandardErrorRuntimeErrorArgumentError

2. 错误作为数据对象

与底层语言中错误可能只是一个简单的返回码不同,Ruby 将上下文信息封装——包括错误消息字符串和执行调用栈——封装成一个正式的对象。这使得开发者可以将运行时中断视为可检查和通过继承进行管理的数据。

架构意图
该层次结构区分了致命的系统故障(不应被捕获)与可恢复的应用程序错误(StandardError)。
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>